/**
	The Minerva Project, DAG Scheduling Tools
	Copyright (C) 2006 Florin Pop & Stefan Bucur

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 */
package ro.pub.cs.minerva.monitoring;

import java.awt.Color;
import java.awt.Font;

/**
 * @author stefan
 *
 */
public class GanttChartProperties implements Cloneable{
	
	private Color backgroundColor = new Color(240, 240, 240);
	
	private Color resourceBackColor = new Color(150, 150, 150);
	
	private Color taskBackColor = new Color(50, 50, 50);
	
	private Font titleFont = new Font("SansSerif", Font.BOLD, 15);
	private Color titleColor = Color.BLACK;
	
	private Font axesTitleFont = new Font("SansSerif", Font.BOLD, 11);
	
	private Font axesLabelsFont = new Font("SansSerif", Font.PLAIN, 10);
	
	private boolean gradientEnabled = true;
	
	private boolean antialiasingEnabled = true;
	
	public static final GanttChartProperties DEFAULT_PROPERTIES =
		new GanttChartProperties();
	
	public GanttChartProperties() {
		
	}

	public Object clone() {
		GanttChartProperties result = null;
		try {
			result = (GanttChartProperties)(super.clone());
			
		} catch (CloneNotSupportedException ex) {
			// This is not the case
		}
		
		return result;
	}

	/**
	 * 
	 * @return
	 */
	public Color getBackgroundColor() {
		return backgroundColor;
	}

	/**
	 * 
	 * @param backgroundColor
	 */
	public void setBackgroundColor(Color backgroundColor) {
		this.backgroundColor = backgroundColor;
	}

	/**
	 * 
	 * @return
	 */
	public Color getResourceBackColor() {
		return resourceBackColor;
	}

	/**
	 * 
	 * @param resourceBackColor
	 */
	public void setResourceBackColor(Color resourceBackColor) {
		this.resourceBackColor = resourceBackColor;
	}

	/**
	 * 
	 * @return
	 */
	public Color getTaskBackColor() {
		return taskBackColor;
	}

	/**
	 * 
	 * @param taskBackColor
	 */
	public void setTaskBackColor(Color taskBackColor) {
		this.taskBackColor = taskBackColor;
	}

	/**
	 * 
	 * @return
	 */
	public boolean isGradientEnabled() {
		return gradientEnabled;
	}

	/**
	 * 
	 * @param gradientEnabled
	 */
	public void setGradientEnabled(boolean gradientEnabled) {
		this.gradientEnabled = gradientEnabled;
	}

	public Font getAxesLabelsFont() {
		return axesLabelsFont;
	}

	public void setAxesLabelsFont(Font axesLabelsFont) {
		this.axesLabelsFont = axesLabelsFont;
	}

	public Font getAxesTitleFont() {
		return axesTitleFont;
	}

	public void setAxesTitleFont(Font axesTitleFont) {
		this.axesTitleFont = axesTitleFont;
	}

	public Font getTitleFont() {
		return titleFont;
	}

	public void setTitleFont(Font titleFont) {
		this.titleFont = titleFont;
	}

	public Color getTitleColor() {
		return titleColor;
	}

	public void setTitleColor(Color titleColor) {
		this.titleColor = titleColor;
	}

	public boolean isAntialiasingEnabled() {
		return antialiasingEnabled;
	}

	public void setAntialiasingEnabled(boolean antialiasingEnabled) {
		this.antialiasingEnabled = antialiasingEnabled;
	}
	
	
}
